package cn.net.ecode.modules.sys.listener;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.ServletContext;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.context.WebApplicationContext;

import cn.net.ecode.common.config.Global;

public class WebContextListener extends org.springframework.web.context.ContextLoaderListener {
	
	/**
	 * 日志对象
	 */
	protected Logger logger = LoggerFactory.getLogger(getClass());
	
	@Override
	public WebApplicationContext initWebApplicationContext(ServletContext servletContext) {
		StringBuilder sb = new StringBuilder();
		sb.append("\r\n======================================================================\r\n");
		sb.append("\r\n    欢迎使用 "+Global.getConfig("productName")+" "+Global.getConfig("version")+" - 青岛数码人网络科技有限公司\r\n");
		sb.append("\r\n======================================================================\r\n");
		logger.info(sb.toString());
		String path = Global.getProjectPath();
		if (isContainSpaceOrChinese(path)){
			sb = new StringBuilder();
			sb.append("\r\n======================================================================\r\n");
			sb.append("\r\n    严重警告：你的部署路径中带有“空格”或“中文”，请将系统部署到不带用“空格”或“中文”的磁盘路径下！！！\r\n");
			sb.append("\r\n    当前路径：" + path + "\r\n");
			sb.append("\r\n======================================================================\r\n");
			logger.warn(sb.toString());
		}
		return super.initWebApplicationContext(servletContext);
	}
	
	/**
	 * 判断字符串是否包含空格或中文
	 */
	private static boolean isContainSpaceOrChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5\\s]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }
	
}
